/*
 * FolderManagerPlug.hpp
 *
 *  Created on: 13.04.2011
 *      Author: niea
 */

#ifndef FOLDERMANAGERPLUG_HPP_
#define FOLDERMANAGERPLUG_HPP_

#include "FolderManagerI.hpp"

namespace efs
{

class FolderManagerPlug: public efs::FolderManagerI
{
public:
	FolderManagerPlug(std::string const& root_path, int folder_monitor_period, Settings const& settings);
	virtual ~FolderManagerPlug();

	void processTCPMessage(std::string const& message);

	bool start();
	void stop();

private:

	static void * threadProcStarter(void *base_class_pointer);
	void threadProc();

	pthread_t m_thread;
	bool m_stop_req;
};

}

#endif /* FOLDERMANAGERPLUG_HPP_ */
